<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
        <!-- 函数，数组，对象拷贝属于深拷贝，是赋值地址所以会改变原来的属性值 -->
        <!-- 深拷贝 ：把对象里面所有的属性都复制一份
            如果属性是对象类型  或  数组类型  也要复制一份 -->
    <script>
        

        var p1={
            name:'Trump',
            age:76,
            gender:'男',
            address:{
                contry:"美国"
            },
            vote:function()
            {
                console.log(this.name+'得了216票');
            }
        }
        function deepCopy(obj)
        {
            var newobj={}
            for(var i in obj)
            {
                var prop=obj[i]  //拿出obj对象的属性值
                if(prop instanceof Object)  //如果属性的值还是对象，那么就递归复制
                {
                    newobj[i]=deepCopy(prop)
                }else if(prop instanceof Array)  //如果属性的值还是数组，那么递归就复制一份
                {
                    newobj[i]=deepCopy(prop)
                }else{
                    newobj[i]=prop //复制对象属性的值
                }
            }
            return newobj;
        }

        // function copy(obj)
        // {
        //     var newobj={};
        //     for(var i in obj)
        //     {
        //         newobj[i]=obj[i]
        //     }
        //     return newobj;
        // }

        var p2=deepCopy(p1)
        p2.name='biden'
        p2.address.contry='中国'
        console.log('p1==>',p1.name,'p2==>',p2.name);
        console.log('p1==>',p1.address.contry,'p2==>',p2.address.contry);



    </script>
    
</body>
</html>